As is known, a Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. In some scenarios, a BPMN can be serialized to a format such as XML Process Definition Language (XPDL) and/or other formats.
Service Oriented Architecture (SOA) implementations oftentimes include SOA entities such as web services, REST services, business processes, servers, and various other applications. In addition, a SOA registry oftentimes plays a central role in both storing metadata associated with the SOA entities, and governing the design-time and/or run-time lifecycle of the SOA entities using policies, lifecycle management, approval management, and/or other governance mechanisms.
The governance mechanisms used for different types of SOA entities can be different. In fact, the governance mechanisms may be different for even the same type SOA entities, e.g., within the same or different departments of a given organization. Furthermore, the governance mechanisms associated with a business process entity might require the governance of all or a partial subset of the SOA entities (e.g., the web services, REST services, etc.) involved in that process. And in such cases, the governance mechanism of the business process might additionally or alternatively include other governance processes of SOA entities included in the business processes. Moreover, there could be lot of operational processes in the organization. Review processes typically are used to help avoid uncontrolled growth of the process model, and these review processes also are a form of governance.
It should be apparent, then, that management of the governance processes becomes important. Unfortunately, however, the management of the governance processes of the SOA entities and business processes is too complex to be performed manually. For example, when the size of the organization increases, the number and complexity of the associated processes also tend to increase. Similar observations may apply as companies merge with one another, when a single company revamps its internal structures and/or ways of doing business, as new technologies are developed and implemented over time, etc. In a nutshell, the pure number of stakeholders, stakeholder responsibilities, iterations, technology and/or other changes, etc., can make effectively enforcing rules and policies an enormous challenge.
Thus, it will be appreciated by those skilled in the art that it would be desirable to provide techniques for managing governance processes in connection with SOA environments, even in situations where the underlying business processes, SOA entities, and/or other elements are susceptible to change.
One aspect of certain example embodiments relates to providing a business process driven SOA governance approach. For instance, certain example embodiments help automate governance processes by integrating such processes with a SOA registry and a business process engine (BPE), e.g., to reduce complexities and/or risks associated with these elements and the ways that they may change over time.
Another aspect of certain example embodiments relates to representing governance processes as process models using a standardized notation such as, for example, BPMN.
Still another aspect of certain example embodiments relates to a BPMN agent integrated into a SOA registry and publish/subscribe agents deployed to the SOA registry and a business process engine, that are used to bring the business and SOA governances together through an Event Driven Architecture (EDA) that helps generate relevant messages from a BPMN model representing the various governance mechanisms. Advantageously, a Complex Event Processing (CEP) engine and business analytics modules may provide monitoring and feedback to both parts of the overall architecture.
In certain example embodiments, a joint SOA and business process governance computer system is provided. A BPE comprising processing resources including at least one processor and a memory is configured to coordinate execution of, and govern, a predefined computer-modeled business process. The business process includes a plurality of SOA entities associated therewith. A SOA registry is configured to govern at least the SOA entities associated with the business process and also store metadata associated with the SOA entities. An agent is configured to: receive a document specifying governance-related mechanisms to be used in connection with the SOA entities and/or the business process, extract governance-related entities from the document, provide the extracted governance-related entities to the SOA registry, and cause the provided governance-related entities to become enabled in connection with the SOA registry. A SOA event emitter provided to the SOA registry is configured to publish SOA messages that can be subscribed to by a SOA event subscriber provided by the BPE. A process event emitter provided by the BPE is configured to publish process messages that can be subscribed to by a process event subscriber provided to the SOA registry. An analytics module is configured to receive and analyze SOA events from the SOA event emitter and process events from the process event emitter. The SOA registry is configured to enforce the governance-related mechanisms through the enabled governance-related entities.
According to certain example embodiments, a CEP engine may be configured to receive and analyze SOA events from the SOA event emitter, as well as process events from the process event emitter. In this regard, the analytics module and/or the CEP engine may be configured to provide further SOA events and further business process events to the SOA registry and/or BPE for processing thereon.
According to certain example embodiments, the document may be a BPMN model representing at least some governance mechanisms.
According to certain example embodiments, the agent may be further configured to extract governance-related entities and provide said governance-related entities to the SOA Registry.
In certain example embodiments, a computer system configured to help provide combined SOA and business process governance is provided. Processing resources include at least one processor and a memory. The processing resources are configured to cooperate in at least: receiving a document specifying governance-related mechanisms to be enforced on SOA entities stored in a SOA registry and/or a business process leveraging the SOA entities that is executable in connection with a BPE; extracting governance-related information from the document; creating at least one governance-related entity based on the extracted governance-related information (e.g., by optionally converting the extracted governance-related information into XML-based representations of governance-related entities); and deploying the at least one governance-related entity to the SOA registry, with each said deployed governance-related entity becoming active in enforcing the governance-related mechanisms. The governance mechanisms are policies, lifecycle management, and/or approval management type governance mechanisms, the processing resources being further configured to generate entities therefrom.
In certain example embodiments, a SOA system is provided. At least one processor and a memory are provided. A SOA registry is configured to govern at least SOA entities associated with a BPE and also store metadata associated with the SOA entities. An agent is configured to: receive a computer-based model specifying governance-related mechanisms to be used in connection with the SOA entities and/or the business process, extract governance-related entities from the document, publish the extracted governance-related entities to the SOA registry, and cause the published governance-related entities to become enabled in connection with the SOA registry. An EDA-based SOA event emitter is configured to publish SOA events that can be subscribed to by a SOA event subscriber provided by the BPE. A process event subscriber is configured to receive process events published by a process event emitter provided by the BPE. An enforcement module is configured to enforce the governance-related mechanisms through the enabled governance-related entities.
In certain example embodiments, a method of providing combined SOA and business process governance is provided. A BPMN model file specifying governance-related mechanisms to be enforced on (a) SOA entities stored in a SOA registry and/or (b) a business process leveraging the SOA entities that is executable in connection with a BPE, is received. Governance-related information is extracted from the file. At least one governance-related entity is created based on the extracted governance-related information. Each said created governance-related entity is validated. Each said validated governance-related entity is published, in connection with at least one processor, to the SOA registry, with the at least one published governance-related entity becoming active in enforcing the governance-related mechanisms. The governance mechanisms are policies, lifecycle management, and/or approval management type governance mechanisms.
In certain example embodiments, a method of providing combined SOA and business process governance in connection with a SOA registry and a BPE that cooperate to enable execution of a computer-modeled business process. Governance-related entities that are published in accordance with the described in the paragraph above are activated in connection with at least one processor. SOA messages that can be subscribed to by a SOA event subscriber provided to the BPE are published via an EDA-based SOA event emitter. Process messages published by a process event emitter provided to the BPE are received via a process event subscriber. Governance-related mechanisms are enforced through the activated governance-related entities and also in association with SOA and/or process events.
In certain example embodiments, non-transitory computer readable storage mediums may be provided that tangibly store instructions that, when executed by a processor of a suitably configured computer system, may perform these and/or other related methods.
These aspects and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.